<template>
  <div>
    <h2>员工导入</h2>
    <el-alert
      title="每次导入仅可添加1000名员工，姓名、手机、入职时间、聘用形式为必填项"
      type="warning"
      show-icon
    >
    </el-alert>
    <upload-excel :on-success="success" />
  </div>
</template>

<script>
import { importEmp } from '@/api/employees'
export default {
  methods: {
    async success ({ header, results }) {
      const userRelations = {
        入职日期: 'timeOfEntry',
        手机号: 'mobile',
        姓名: 'username',
        转正日期: 'correctionTime',
        工号: 'workNumber'
      }
      var newArr = results.map(item => {
        let userInfo = {}
        Object.keys(item).forEach(key => {
          if (
            userRelations[key] === 'timeOfEntry' ||
            userRelations[key] === 'correctionTime'
          ) {
            userInfo[userRelations[key]] = new Date(
              this.formatDate(item[key], '/')
            )
          } else {
            userInfo[userRelations[key]] = item[key] // 将原来中文的值赋值给原来英文对应的值
          }
        })
        return userInfo
      })
      await importEmp(newArr)
      this.$message.success('导入成功')
      this.$router.go(-1)
    },
    formatDate (numb) {
      // excel中获取到的时间是1900年1月1日起算到目前为止的天数,是以1为起算点,我们需要转换成标准时间格式,我们时间是以1970年1月1日起算了,而且是以0为起算点,所以excel中获取的天数要-1得到天数再转换成毫秒数
      const time = new Date((numb - 1) * 24 * 3600000 + 1)
      time.setYear(time.getFullYear() - 70)
      return time
    }
  }
}
</script>

<style>
h2 {
  text-align: center;
  margin-top: 50px;
}
.el-alert {
  width: 90%;
  margin: 0 auto;
}
</style>
